Imports CapaAccesoBD

Public Class MultiEstudiante

    Public Shared Function levantarEstudianteXGrupo(ByVal idGrupo As Integer, ByVal idEstudiante As String) As Estudiante
        Dim dt As New capaAccesoBD.CrystalGradesDataSet.sp_LevantarEstudianteXGrupoDataTable
        Dim query As New capaAccesoBD.CrystalGradesDataSetTableAdapters.sp_LevantarEstudianteXGrupoTableAdapter
        query.Fill(dt, idGrupo, idEstudiante)

        Dim row As capaAccesoBD.CrystalGradesDataSet.sp_LevantarEstudianteXGrupoRow = dt.Rows(0)

        Dim miEstudiante As New Estudiante(row.idEstudiante, row.nombre, row.apellido1, row.apellido2, row.correoElectronico, row.idGrupo)

        Return miEstudiante
    End Function

    Public Shared Sub RegistrarEstudiantes(ByVal nombre As String, ByVal carnet As String, ByVal apellido1 As String, ByVal apellido2 As String _
            , ByVal correo As String, ByVal clave As String)

        'si el estudiante ya existe, solo registrar en la tabla EstudianteXGRupo

        Dim dt As New CrystalGradesDataSetTableAdapters.QueriesTableAdapter
        dt.sp_RegistrarEstudiantes(carnet, nombre, apellido1, apellido2, correo, clave)

        Dim ds As New CrystalGradesDataSet
        ds.AcceptChanges()

    End Sub

    Public Shared Sub RegistrarEstudianteXGrupo(ByVal carnet As String, ByVal idGrupo As Integer)

        Dim dt As New CrystalGradesDataSetTableAdapters.QueriesTableAdapter
        dt.sp_RegistrarEstudiantesXGrupo(carnet, idGrupo)

        Dim ds As New CrystalGradesDataSet
        ds.AcceptChanges()



    End Sub


    Public Shared Function LevantarRubrosXEstudiante(ByVal pidEstudiante As String) As DataTable

        Dim listaRubros As New capaAccesoBD.CrystalGradesDataSetTableAdapters.sp_LevantarEstudiantesTableAdapter

        Dim dt As New capaAccesoBD.CrystalGradesDataSet.sp_LevantarEstudiantesDataTable

        listaRubros.Fill(dt, pidEstudiante)

        Return dt
    End Function

    Public Shared Function LevantarEstudiantesSinEquipo(ByVal grupo As Integer) As DataTable
        Dim listaEstudiantes As New capaAccesoBD.CrystalGradesDataSetTableAdapters.sp_LevantarEstudiantesSinEquipoTableAdapter
        Dim dt As New capaAccesoBD.CrystalGradesDataSet.sp_LevantarEstudiantesSinEquipoDataTable

        listaEstudiantes.Fill(dt, grupo)
        Return dt
    End Function

    Public Shared Function LevantarEstudiantesXGrupo(ByVal pidGrupo As Integer) As List(Of Estudiante)
        Dim i As New Integer
        Dim dtEstudiantes As New capaAccesoBD.CrystalGradesDataSetTableAdapters.sp_LevantarEstudiantesTableAdapter
        Dim dt As New capaAccesoBD.CrystalGradesDataSet.sp_LevantarEstudiantesDataTable
        dtEstudiantes.Fill(dt, pidGrupo)
        Dim listaEstudiantes As New List(Of Estudiante)
        If (dt.Rows.Count = 0) Then
            Throw New Exception("No hay un estudiantes asignados a ese grupo")
        End If
        For i = 0 To dt.Rows.Count - 1
            Dim row As capaAccesoBD.CrystalGradesDataSet.sp_LevantarEstudiantesRow = dt.Rows(i)
            Dim estudiante As Estudiante
            estudiante = New Estudiante(row.idEstudiante, row.nombre, row.apellido1, row.apellido2, row.correoElectronico, pidGrupo)
            listaEstudiantes.Add(estudiante)
        Next
        Return listaEstudiantes
    End Function

    Public Shared Function BuscarEstudiante(ByVal pcarne As String) As Estudiante

        Dim dtEstudiante As New capaAccesoBD.CrystalGradesDataSetTableAdapters.sp_BuscarEstudianteTableAdapter
        Dim dt As New capaAccesoBD.CrystalGradesDataSet.sp_BuscarEstudianteDataTable
        dtEstudiante.Fill(dt, pcarne)
        If (dt.Rows.Count = 0) Then
            Throw New Exception("No hay un estudiante con el carnet ingresado")
        End If
        Dim row As capaAccesoBD.CrystalGradesDataSet.sp_BuscarEstudianteRow = dt.Rows(0)
        Dim estudiante As Estudiante
        estudiante = New Estudiante(pcarne, row.nombre, row.apellido1, row.apellido2, row.correoElectronico)
        Return estudiante

    End Function


    Public Shared Function BuscarEstudianteRegistrado(ByVal pcarne As String) As Boolean
        Dim esta As Boolean = True
        Dim dtEstudiante As New capaAccesoBD.CrystalGradesDataSetTableAdapters.sp_BuscarEstudianteTableAdapter
        Dim dt As New capaAccesoBD.CrystalGradesDataSet.sp_BuscarEstudianteDataTable
        dtEstudiante.Fill(dt, pcarne)
        If (dt.Rows.Count = 0) Then
            esta = False
        End If
        Return esta
    End Function

    Public Shared Function BuscarEstudianteRegistradoGrupo(ByVal pcarne As String, ByVal pidGrupo As Integer) As Boolean
        Dim esta As Boolean = True
        Dim dtEstudiante As New capaAccesoBD.CrystalGradesDataSetTableAdapters.sp_BuscarEstudianteGrupoTableAdapter
        Dim dt As New capaAccesoBD.CrystalGradesDataSet.sp_BuscarEstudianteGrupoDataTable
        dtEstudiante.Fill(dt, pcarne, pidGrupo)
        If (dt.Rows.Count = 0) Then
            esta = False
        End If
        Return esta
    End Function

    Public Shared Function BuscarTodosCarnets() As List(Of String)
        Dim i As New Integer
        Dim listaEstudiantes As New List(Of String)
        Dim dtEstudiante As New capaAccesoBD.CrystalGradesDataSetTableAdapters.sp_BuscarCarneTableAdapter
        Dim dt As New capaAccesoBD.CrystalGradesDataSet.sp_BuscarCarneDataTable
        dtEstudiante.Fill(dt)

        For i = 0 To dt.Rows.Count - 1
            Dim row As capaAccesoBD.CrystalGradesDataSet.sp_BuscarCarneRow = dt.Rows(i)
            Dim carne As String
            carne = row.idestudiante
            listaEstudiantes.Add(carne)
        Next
        Return listaEstudiantes
    End Function

    Public Shared Function BuscarTodosNombre() As List(Of String)
        Dim i As New Integer
        Dim listaEstudiantes As New List(Of String)
        Dim nombre As String
        Dim dtEstudiante As New capaAccesoBD.CrystalGradesDataSetTableAdapters.sp_BuscarNombreCompletoEstudiantesTableAdapter
        Dim dt As New capaAccesoBD.CrystalGradesDataSet.sp_BuscarNombreCompletoEstudiantesDataTable
        dtEstudiante.Fill(dt)

        For i = 0 To dt.Rows.Count - 1
            Dim row As capaAccesoBD.CrystalGradesDataSet.sp_BuscarNombreCompletoEstudiantesRow = dt.Rows(i)
            nombre = row.Column1
            listaEstudiantes.Add(nombre)
        Next
        Return listaEstudiantes
    End Function

    Public Shared Function BuscarTodosApellido() As List(Of String)
        Dim i As New Integer
        Dim listaEstudiantes As New List(Of String)
        Dim nombre As String
        Dim dtEstudiante As New capaAccesoBD.CrystalGradesDataSetTableAdapters.sp_BuscarXApellidoEstudiantesTableAdapter
        Dim dt As New capaAccesoBD.CrystalGradesDataSet.sp_BuscarXApellidoEstudiantesDataTable
        dtEstudiante.Fill(dt)

        For i = 0 To dt.Rows.Count - 1
            Dim row As capaAccesoBD.CrystalGradesDataSet.sp_BuscarXApellidoEstudiantesRow = dt.Rows(i)
            nombre = row.Column1
            listaEstudiantes.Add(nombre)
        Next
        Return listaEstudiantes
    End Function
    Public Shared Function LevantarEstudiantes(ByVal pidGrupo As Integer) As DataTable
        Dim dt As New capaAccesoBD.CrystalGradesDataSet.sp_LevantarEstudiantesDataTable

        Dim qa As New capaAccesoBD.CrystalGradesDataSetTableAdapters.sp_LevantarEstudiantesTableAdapter
        qa.Fill(dt, pidGrupo)

        Return dt
    End Function

    Public Shared Sub ModificarEstudiante(ByVal pidEstudiante As String, ByVal pnombre As String, ByVal papellido1 As String, ByVal papellido2 As String, ByVal pcorreo As String, ByVal pidGrupo As Integer, ByVal pidEstudianteViejo As String)
        Dim dt As New capaAccesoBD.CrystalGradesDataSetTableAdapters.QueriesTableAdapter

        dt.sp_ModificarEstudiante(pidEstudiante, pnombre, papellido1, papellido2, pcorreo, pidGrupo, pidEstudianteViejo)
        Dim ds As New capaAccesoBD.CrystalGradesDataSet
        ds.AcceptChanges()
    End Sub
    Public Shared Sub EliminarEstudiante(ByVal pidEstudiante As String)
        Dim dt As New capaAccesoBD.CrystalGradesDataSetTableAdapters.QueriesTableAdapter
        dt.sp_EliminarEstudiante(pidEstudiante)
        Dim ds As New capaAccesoBD.CrystalGradesDataSet
        ds.AcceptChanges()
    End Sub

    Public Shared Function LevantarEstudiantesPorEquipo(ByVal pidEquipo As Integer) As DataTable
        Dim dt As New capaAccesoBD.CrystalGradesDataSet.sp_LevantarEstudiantesPorEquipoDataTable
        Dim qa As New capaAccesoBD.CrystalGradesDataSetTableAdapters.sp_LevantarEstudiantesPorEquipoTableAdapter
        qa.Fill(dt, pidEquipo)

        Return dt
    End Function
    Public Shared Function BuscarEstudiantePorEquipo(ByVal idEquipo As Integer) As List(Of Estudiante)
        Dim listaEstudiantes As New List(Of Estudiante)

        Dim dtEstudiantes As New capaAccesoBD.CrystalGradesDataSetTableAdapters.sp_LevantarEstudiantesPorEquipoTableAdapter
        Dim dt As New capaAccesoBD.CrystalGradesDataSet.sp_LevantarEstudiantesPorEquipoDataTable
        dtEstudiantes.Fill(dt, idEquipo)

        If (dt.Rows.Count = 0) Then
            Throw New Exception("No hay un estudiantes asignados a ese equipo")
        End If

        For Each row As capaAccesoBD.CrystalGradesDataSet.sp_LevantarEstudiantesPorEquipoRow In dt.Rows
            Dim estudiante As Estudiante
            estudiante = New Estudiante(row.idEstudiante, row.nombre, row.apellido1, row.apellido2, row.correoElectronico)
            listaEstudiantes.Add(estudiante)
        Next
        Return listaEstudiantes

        Return listaEstudiantes
    End Function

    Public Shared Function IdentificarEstudiante(ByVal username As String, ByVal clave As String) As String
        Dim dt As New capaAccesoBD.CrystalGradesDataSet.sp_LoguearEstudianteDataTable
        Dim query As New capaAccesoBD.CrystalGradesDataSetTableAdapters.sp_LoguearEstudianteTableAdapter
        query.Fill(dt, username, clave)
        Return CType(dt.Rows(0).Item(0), String)
    End Function

    Public Shared Function levantarCursosXEstudiante(ByVal username As String) As List(Of String)
        Dim listaCursos As New List(Of String)

        Dim dt As New capaAccesoBD.CrystalGradesDataSet.sp_LevantarGruposXEstudianteDataTable
        Dim ta As New capaAccesoBD.CrystalGradesDataSetTableAdapters.sp_LevantarGruposXEstudianteTableAdapter
        ta.Fill(dt, username)

        For Each row As capaAccesoBD.CrystalGradesDataSet.sp_LevantarGruposXEstudianteRow In dt.Rows
            listaCursos.Add(row.nombreCurso)
        Next
        Return listaCursos

    End Function

    Public Shared Function levantarE(ByVal username As String) As Data.DataTable

        Dim dt As New capaAccesoBD.CrystalGradesDataSet.sp_LevantarGruposXEstudianteDataTable
        Dim ta As New capaAccesoBD.CrystalGradesDataSetTableAdapters.sp_LevantarGruposXEstudianteTableAdapter
        ta.Fill(dt, username)

        Return dt

    End Function
End Class
